package com.hmall.common.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author Administrator
 * @version 1.0
 * @description: 多级延时检测消息：将一条延时比较长的消息拆分成多段延时时长
 * @date 2024/6/11 15:15
 */
@Data
@NoArgsConstructor
@AllArgsConstructor(staticName = "of")
public class MultiDelayCheckMsg<T> {
    /**
     * 核心消息数据
     */
    private T coreMsgData;
    /**
     * 自定义拆分的延时时间段
     */
    private List<Integer> delayTimes;

    /**
     * 移除并获取下一个延时时间
     * @return
     */
    public Integer nextDelayTime(){
        return delayTimes.remove(0);
    }

    /**
     * 判断是否还有延时时间
     * @return
     */
    public boolean haveNextDelayTime(){
        return !delayTimes.isEmpty();
    }
}
